home *** CD-ROM | disk | FTP | other *** search
/ Interplay's Learn to Program Basic (Review Copy) / Learn to Program Basic Review Copy (Interplay)(June 23, 1998).ISO / pc / ltpbasic / exercise / secret.bas < prev    next >
Encoding:
BASIC Source File  |  1998-04-07  |  1.8 KB  |  116 lines

  1. rem secret message
  2.  
  3. cls
  4. let pos = 1
  5. let counter = 0
  6.  
  7. begin:
  8. Print "Do you wish to encrypt or "
  9. Print "unencrypt a sentence?"
  10. Print "1.  Encrypt"
  11. Print "2.  Unencrypt"
  12. Input selection
  13. If selection < 1 or selection > 2 then goto begin
  14.  
  15. If selection = 1 then 
  16. scheme$ = "encrypted"
  17. gosub entertext
  18. gosub encrypt
  19. endif
  20.  
  21. If selection = 2 then
  22. scheme$ = "unencrypted"
  23. gosub entertext
  24. gosub unencrypt
  25. endif
  26.  
  27. end
  28.  
  29. entertext:
  30. Print "Please enter the sentence to be"
  31. Print scheme$
  32. Input sentence$
  33.  
  34. Let sentencelength = len(sentence$)
  35. return
  36.  
  37. encrypt:
  38. rem create an array that is equal on both sides
  39. let size = (int(sqr(sentencelength))) + 1
  40. Dim Encoder$(size,size)
  41. rem store the letters in the array    
  42. For R = 1 to size
  43. for C = 1 to size
  44. if sentencelength > 0 then
  45. let letter$ = mid$(sentence$,pos,1)        
  46. let encoder$(R,C) = letter$
  47. endif 
  48. pos = pos + 1
  49. sentencelength = sentencelength - 1
  50.  
  51. if sentencelength < 0 then
  52. let letter$ = "*"
  53. let encoder$(R,C) = letter$
  54. endif
  55. next C
  56. next R
  57.  
  58. rem print out the encryption grid
  59. Print
  60. Print "you encryption grid is:"
  61. Print
  62. For C = 1 to size
  63. For R = 1 to size
  64. print encoder$(R,C);
  65. print " ";
  66. let counter = counter + 1
  67. if counter = size then
  68. print
  69. let counter = 0
  70. endif
  71. Next R
  72. Next C
  73.  
  74. rem print out the sentence
  75. Print
  76. Print "Your encrypted sentence is:"
  77. Print
  78. For C = 1 to size
  79. For R = 1 to size
  80. print encoder$(R,C);
  81. Next R
  82. Next C
  83.  
  84. return
  85.  
  86. return
  87.  
  88. unencrypt:
  89. rem create the array that is equal on both sides
  90. let size = sqr(sentencelength)
  91. Dim Encoder$(size,size)
  92. rem store the sentence
  93. let pos = 1
  94. for C = 1 to size
  95. for R = 1 to size
  96. let letter$ = mid$(sentence$,pos,1)    
  97. let encoder$(R,C) = letter$
  98. let pos = pos + 1
  99. next R
  100. next C
  101.  
  102. rem print out the good sentence
  103. Print
  104. Print "Your unencrypted sentence is:"
  105. Print
  106. For R = 1 to size
  107. For C = 1 to size
  108. if encoder$(R,C) <> "*" then
  109. print encoder$(R,C);
  110. endif
  111. next C
  112. next R
  113.  
  114. return
  115.